/**
 */
package org.mro.grib.model.files.secondEdition.grids.impl;

import java.nio.ByteBuffer;

import org.eclipse.emf.common.notify.Notification;

import org.eclipse.emf.ecore.EClass;

import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.EObjectImpl;

import org.mro.grib.model.files.secondEdition.grids.EarthShapeGridDefinition;
import org.mro.grib.model.files.secondEdition.grids.GridsPackage;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Earth Shape Grid Definition</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.EarthShapeGridDefinitionImpl#getShapeOfTheEarth <em>Shape Of The Earth</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.EarthShapeGridDefinitionImpl#getScaleFactorOfRadiusOfSphericalEarth <em>Scale Factor Of Radius Of Spherical Earth</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.EarthShapeGridDefinitionImpl#getScaledValueOfRadiusOfSphericalEarth <em>Scaled Value Of Radius Of Spherical Earth</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.EarthShapeGridDefinitionImpl#getScaleFactorOfMajorAxisOfOblateSpheroidEarth <em>Scale Factor Of Major Axis Of Oblate Spheroid Earth</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.EarthShapeGridDefinitionImpl#getScaledValueOfMajorAxisOfOblateSpheroidEarth <em>Scaled Value Of Major Axis Of Oblate Spheroid Earth</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.EarthShapeGridDefinitionImpl#getScaleFactorOfMinorAxisOfOblateSpheroidEarth <em>Scale Factor Of Minor Axis Of Oblate Spheroid Earth</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.grids.impl.EarthShapeGridDefinitionImpl#getScaledValueOfMinorAxisOfOblateSpheroidEarth <em>Scaled Value Of Minor Axis Of Oblate Spheroid Earth</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public abstract class EarthShapeGridDefinitionImpl extends EObjectImpl implements EarthShapeGridDefinition {
	/**
	 * The default value of the '{@link #getShapeOfTheEarth() <em>Shape Of The Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getShapeOfTheEarth()
	 * @generated
	 * @ordered
	 */
	protected static final byte SHAPE_OF_THE_EARTH_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getShapeOfTheEarth() <em>Shape Of The Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getShapeOfTheEarth()
	 * @generated
	 * @ordered
	 */
	protected byte shapeOfTheEarth = SHAPE_OF_THE_EARTH_EDEFAULT;

	/**
	 * The default value of the '{@link #getScaleFactorOfRadiusOfSphericalEarth() <em>Scale Factor Of Radius Of Spherical Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaleFactorOfRadiusOfSphericalEarth()
	 * @generated
	 * @ordered
	 */
	protected static final byte SCALE_FACTOR_OF_RADIUS_OF_SPHERICAL_EARTH_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getScaleFactorOfRadiusOfSphericalEarth() <em>Scale Factor Of Radius Of Spherical Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaleFactorOfRadiusOfSphericalEarth()
	 * @generated
	 * @ordered
	 */
	protected byte scaleFactorOfRadiusOfSphericalEarth = SCALE_FACTOR_OF_RADIUS_OF_SPHERICAL_EARTH_EDEFAULT;

	/**
	 * The default value of the '{@link #getScaledValueOfRadiusOfSphericalEarth() <em>Scaled Value Of Radius Of Spherical Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaledValueOfRadiusOfSphericalEarth()
	 * @generated
	 * @ordered
	 */
	protected static final int SCALED_VALUE_OF_RADIUS_OF_SPHERICAL_EARTH_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getScaledValueOfRadiusOfSphericalEarth() <em>Scaled Value Of Radius Of Spherical Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaledValueOfRadiusOfSphericalEarth()
	 * @generated
	 * @ordered
	 */
	protected int scaledValueOfRadiusOfSphericalEarth = SCALED_VALUE_OF_RADIUS_OF_SPHERICAL_EARTH_EDEFAULT;

	/**
	 * The default value of the '{@link #getScaleFactorOfMajorAxisOfOblateSpheroidEarth() <em>Scale Factor Of Major Axis Of Oblate Spheroid Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaleFactorOfMajorAxisOfOblateSpheroidEarth()
	 * @generated
	 * @ordered
	 */
	protected static final byte SCALE_FACTOR_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getScaleFactorOfMajorAxisOfOblateSpheroidEarth() <em>Scale Factor Of Major Axis Of Oblate Spheroid Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaleFactorOfMajorAxisOfOblateSpheroidEarth()
	 * @generated
	 * @ordered
	 */
	protected byte scaleFactorOfMajorAxisOfOblateSpheroidEarth = SCALE_FACTOR_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT;

	/**
	 * The default value of the '{@link #getScaledValueOfMajorAxisOfOblateSpheroidEarth() <em>Scaled Value Of Major Axis Of Oblate Spheroid Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaledValueOfMajorAxisOfOblateSpheroidEarth()
	 * @generated
	 * @ordered
	 */
	protected static final int SCALED_VALUE_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getScaledValueOfMajorAxisOfOblateSpheroidEarth() <em>Scaled Value Of Major Axis Of Oblate Spheroid Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaledValueOfMajorAxisOfOblateSpheroidEarth()
	 * @generated
	 * @ordered
	 */
	protected int scaledValueOfMajorAxisOfOblateSpheroidEarth = SCALED_VALUE_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT;

	/**
	 * The default value of the '{@link #getScaleFactorOfMinorAxisOfOblateSpheroidEarth() <em>Scale Factor Of Minor Axis Of Oblate Spheroid Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaleFactorOfMinorAxisOfOblateSpheroidEarth()
	 * @generated
	 * @ordered
	 */
	protected static final byte SCALE_FACTOR_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getScaleFactorOfMinorAxisOfOblateSpheroidEarth() <em>Scale Factor Of Minor Axis Of Oblate Spheroid Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaleFactorOfMinorAxisOfOblateSpheroidEarth()
	 * @generated
	 * @ordered
	 */
	protected byte scaleFactorOfMinorAxisOfOblateSpheroidEarth = SCALE_FACTOR_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT;

	/**
	 * The default value of the '{@link #getScaledValueOfMinorAxisOfOblateSpheroidEarth() <em>Scaled Value Of Minor Axis Of Oblate Spheroid Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaledValueOfMinorAxisOfOblateSpheroidEarth()
	 * @generated
	 * @ordered
	 */
	protected static final int SCALED_VALUE_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getScaledValueOfMinorAxisOfOblateSpheroidEarth() <em>Scaled Value Of Minor Axis Of Oblate Spheroid Earth</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaledValueOfMinorAxisOfOblateSpheroidEarth()
	 * @generated
	 * @ordered
	 */
	protected int scaledValueOfMinorAxisOfOblateSpheroidEarth = SCALED_VALUE_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected EarthShapeGridDefinitionImpl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return GridsPackage.Literals.EARTH_SHAPE_GRID_DEFINITION;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getShapeOfTheEarth() {
		return shapeOfTheEarth;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setShapeOfTheEarth(byte newShapeOfTheEarth) {
		byte oldShapeOfTheEarth = shapeOfTheEarth;
		shapeOfTheEarth = newShapeOfTheEarth;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SHAPE_OF_THE_EARTH, oldShapeOfTheEarth, shapeOfTheEarth));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getScaleFactorOfRadiusOfSphericalEarth() {
		return scaleFactorOfRadiusOfSphericalEarth;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScaleFactorOfRadiusOfSphericalEarth(byte newScaleFactorOfRadiusOfSphericalEarth) {
		byte oldScaleFactorOfRadiusOfSphericalEarth = scaleFactorOfRadiusOfSphericalEarth;
		scaleFactorOfRadiusOfSphericalEarth = newScaleFactorOfRadiusOfSphericalEarth;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_RADIUS_OF_SPHERICAL_EARTH, oldScaleFactorOfRadiusOfSphericalEarth, scaleFactorOfRadiusOfSphericalEarth));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getScaledValueOfRadiusOfSphericalEarth() {
		return scaledValueOfRadiusOfSphericalEarth;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScaledValueOfRadiusOfSphericalEarth(int newScaledValueOfRadiusOfSphericalEarth) {
		int oldScaledValueOfRadiusOfSphericalEarth = scaledValueOfRadiusOfSphericalEarth;
		scaledValueOfRadiusOfSphericalEarth = newScaledValueOfRadiusOfSphericalEarth;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_RADIUS_OF_SPHERICAL_EARTH, oldScaledValueOfRadiusOfSphericalEarth, scaledValueOfRadiusOfSphericalEarth));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getScaleFactorOfMajorAxisOfOblateSpheroidEarth() {
		return scaleFactorOfMajorAxisOfOblateSpheroidEarth;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScaleFactorOfMajorAxisOfOblateSpheroidEarth(byte newScaleFactorOfMajorAxisOfOblateSpheroidEarth) {
		byte oldScaleFactorOfMajorAxisOfOblateSpheroidEarth = scaleFactorOfMajorAxisOfOblateSpheroidEarth;
		scaleFactorOfMajorAxisOfOblateSpheroidEarth = newScaleFactorOfMajorAxisOfOblateSpheroidEarth;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH, oldScaleFactorOfMajorAxisOfOblateSpheroidEarth, scaleFactorOfMajorAxisOfOblateSpheroidEarth));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getScaledValueOfMajorAxisOfOblateSpheroidEarth() {
		return scaledValueOfMajorAxisOfOblateSpheroidEarth;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScaledValueOfMajorAxisOfOblateSpheroidEarth(int newScaledValueOfMajorAxisOfOblateSpheroidEarth) {
		int oldScaledValueOfMajorAxisOfOblateSpheroidEarth = scaledValueOfMajorAxisOfOblateSpheroidEarth;
		scaledValueOfMajorAxisOfOblateSpheroidEarth = newScaledValueOfMajorAxisOfOblateSpheroidEarth;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH, oldScaledValueOfMajorAxisOfOblateSpheroidEarth, scaledValueOfMajorAxisOfOblateSpheroidEarth));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getScaleFactorOfMinorAxisOfOblateSpheroidEarth() {
		return scaleFactorOfMinorAxisOfOblateSpheroidEarth;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScaleFactorOfMinorAxisOfOblateSpheroidEarth(byte newScaleFactorOfMinorAxisOfOblateSpheroidEarth) {
		byte oldScaleFactorOfMinorAxisOfOblateSpheroidEarth = scaleFactorOfMinorAxisOfOblateSpheroidEarth;
		scaleFactorOfMinorAxisOfOblateSpheroidEarth = newScaleFactorOfMinorAxisOfOblateSpheroidEarth;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH, oldScaleFactorOfMinorAxisOfOblateSpheroidEarth, scaleFactorOfMinorAxisOfOblateSpheroidEarth));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getScaledValueOfMinorAxisOfOblateSpheroidEarth() {
		return scaledValueOfMinorAxisOfOblateSpheroidEarth;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScaledValueOfMinorAxisOfOblateSpheroidEarth(int newScaledValueOfMinorAxisOfOblateSpheroidEarth) {
		int oldScaledValueOfMinorAxisOfOblateSpheroidEarth = scaledValueOfMinorAxisOfOblateSpheroidEarth;
		scaledValueOfMinorAxisOfOblateSpheroidEarth = newScaledValueOfMinorAxisOfOblateSpheroidEarth;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH, oldScaledValueOfMinorAxisOfOblateSpheroidEarth, scaledValueOfMinorAxisOfOblateSpheroidEarth));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SHAPE_OF_THE_EARTH:
				return getShapeOfTheEarth();
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_RADIUS_OF_SPHERICAL_EARTH:
				return getScaleFactorOfRadiusOfSphericalEarth();
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_RADIUS_OF_SPHERICAL_EARTH:
				return getScaledValueOfRadiusOfSphericalEarth();
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				return getScaleFactorOfMajorAxisOfOblateSpheroidEarth();
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				return getScaledValueOfMajorAxisOfOblateSpheroidEarth();
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				return getScaleFactorOfMinorAxisOfOblateSpheroidEarth();
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				return getScaledValueOfMinorAxisOfOblateSpheroidEarth();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SHAPE_OF_THE_EARTH:
				setShapeOfTheEarth((Byte)newValue);
				return;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_RADIUS_OF_SPHERICAL_EARTH:
				setScaleFactorOfRadiusOfSphericalEarth((Byte)newValue);
				return;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_RADIUS_OF_SPHERICAL_EARTH:
				setScaledValueOfRadiusOfSphericalEarth((Integer)newValue);
				return;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				setScaleFactorOfMajorAxisOfOblateSpheroidEarth((Byte)newValue);
				return;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				setScaledValueOfMajorAxisOfOblateSpheroidEarth((Integer)newValue);
				return;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				setScaleFactorOfMinorAxisOfOblateSpheroidEarth((Byte)newValue);
				return;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				setScaledValueOfMinorAxisOfOblateSpheroidEarth((Integer)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SHAPE_OF_THE_EARTH:
				setShapeOfTheEarth(SHAPE_OF_THE_EARTH_EDEFAULT);
				return;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_RADIUS_OF_SPHERICAL_EARTH:
				setScaleFactorOfRadiusOfSphericalEarth(SCALE_FACTOR_OF_RADIUS_OF_SPHERICAL_EARTH_EDEFAULT);
				return;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_RADIUS_OF_SPHERICAL_EARTH:
				setScaledValueOfRadiusOfSphericalEarth(SCALED_VALUE_OF_RADIUS_OF_SPHERICAL_EARTH_EDEFAULT);
				return;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				setScaleFactorOfMajorAxisOfOblateSpheroidEarth(SCALE_FACTOR_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT);
				return;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				setScaledValueOfMajorAxisOfOblateSpheroidEarth(SCALED_VALUE_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT);
				return;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				setScaleFactorOfMinorAxisOfOblateSpheroidEarth(SCALE_FACTOR_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT);
				return;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				setScaledValueOfMinorAxisOfOblateSpheroidEarth(SCALED_VALUE_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SHAPE_OF_THE_EARTH:
				return shapeOfTheEarth != SHAPE_OF_THE_EARTH_EDEFAULT;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_RADIUS_OF_SPHERICAL_EARTH:
				return scaleFactorOfRadiusOfSphericalEarth != SCALE_FACTOR_OF_RADIUS_OF_SPHERICAL_EARTH_EDEFAULT;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_RADIUS_OF_SPHERICAL_EARTH:
				return scaledValueOfRadiusOfSphericalEarth != SCALED_VALUE_OF_RADIUS_OF_SPHERICAL_EARTH_EDEFAULT;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				return scaleFactorOfMajorAxisOfOblateSpheroidEarth != SCALE_FACTOR_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				return scaledValueOfMajorAxisOfOblateSpheroidEarth != SCALED_VALUE_OF_MAJOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALE_FACTOR_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				return scaleFactorOfMinorAxisOfOblateSpheroidEarth != SCALE_FACTOR_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT;
			case GridsPackage.EARTH_SHAPE_GRID_DEFINITION__SCALED_VALUE_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH:
				return scaledValueOfMinorAxisOfOblateSpheroidEarth != SCALED_VALUE_OF_MINOR_AXIS_OF_OBLATE_SPHEROID_EARTH_EDEFAULT;
		}
		return super.eIsSet(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		if (eIsProxy()) return super.toString();

		StringBuffer result = new StringBuffer(super.toString());
		result.append(" (shapeOfTheEarth: "); //$NON-NLS-1$
		result.append(shapeOfTheEarth);
		result.append(", scaleFactorOfRadiusOfSphericalEarth: "); //$NON-NLS-1$
		result.append(scaleFactorOfRadiusOfSphericalEarth);
		result.append(", scaledValueOfRadiusOfSphericalEarth: "); //$NON-NLS-1$
		result.append(scaledValueOfRadiusOfSphericalEarth);
		result.append(", scaleFactorOfMajorAxisOfOblateSpheroidEarth: "); //$NON-NLS-1$
		result.append(scaleFactorOfMajorAxisOfOblateSpheroidEarth);
		result.append(", scaledValueOfMajorAxisOfOblateSpheroidEarth: "); //$NON-NLS-1$
		result.append(scaledValueOfMajorAxisOfOblateSpheroidEarth);
		result.append(", scaleFactorOfMinorAxisOfOblateSpheroidEarth: "); //$NON-NLS-1$
		result.append(scaleFactorOfMinorAxisOfOblateSpheroidEarth);
		result.append(", scaledValueOfMinorAxisOfOblateSpheroidEarth: "); //$NON-NLS-1$
		result.append(scaledValueOfMinorAxisOfOblateSpheroidEarth);
		result.append(')');
		return result.toString();
	}

	/* (non-Javadoc)
	 * @see org.mro.grib.model.files.secondEdition.grids.IGridDefinition#initialise(java.nio.ByteBuffer)
	 */
	@Override
	public void initialise(ByteBuffer buffer) {
		shapeOfTheEarth = buffer.get();
		scaleFactorOfRadiusOfSphericalEarth = buffer.get();
		scaledValueOfRadiusOfSphericalEarth = buffer.getInt();
		scaleFactorOfMajorAxisOfOblateSpheroidEarth = buffer.get();
		scaledValueOfMajorAxisOfOblateSpheroidEarth = buffer.getInt();
		scaleFactorOfMinorAxisOfOblateSpheroidEarth = buffer.get();
		scaledValueOfMinorAxisOfOblateSpheroidEarth = buffer.getInt();
	}
	
} //EarthShapeGridDefinitionImpl
